/*
 * Copyright (c) 2006-2025, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2025-09-29     Guotong    first version
 */

#ifndef __SERVO_H__
#define __SERVO_H__

#include <rtthread.h>
#include "stm32f1xx_hal.h"

/* 舵机相关定义 */
#define SERVO_TIM               TIM3
#define SERVO_CHANNEL           TIM_CHANNEL_1
#define SERVO_PORT              GPIOA
#define SERVO_PIN               GPIO_PIN_6
#define SERVO_PERIOD            20000   // 20ms PWM周期
#define SERVO_ANGLE_0           500     // 0度对应的PWM值
#define SERVO_ANGLE_180         2500    // 180度对应的PWM值
#define SERVO_STEP              15      // 每个档位约15度
#define SERVO_GEAR_COUNT        7       // 总共有7个档位（30°, 45°, 60°, 75°, 90°, 105°, 120°）

/* 外部函数声明 */
void servo_init(void);
void servo_set_gear(int gear);
int servo_get_current_gear(void);

#endif /* __SERVO_H__ */
